Java λ²μ λ³ μ£Όμ νΉμ§ λ° μ§μ κΈ°κ° (LTS μ€μ¬)
Javaλ νμ¬ 2λ μ£ΌκΈ°λ‘ LTS(Long-Term Support) λ²μ μ μΆμνλ©°, νλμ μΈ νλ‘κ·Έλλ° μΈμ΄λ‘ μ§μμ μΌλ‘ μ§ννκ³ μμ΅λλ€. μ΄ κΈμμλ μ€λ¬΄μμ μ£Όλ‘ μ¬μ©λλ LTS λ²μ λ€μ μ°¨μ΄μ κ³Ό μ§μ λ‘λλ§΅μ μ 리ν©λλ€.
1. Java LTS λ²μ μ§μ λ‘λλ§΅
Javaμ κ° λ²μ μ λ²€λ(Oracle, Red Hat, Eclipse λ±)μ λ°λΌ μ§μ κΈ°κ°μ΄ λ€λ₯΄μ§λ§, μΌλ°μ μΌλ‘ Oracleμ κ°μ΄λλΌμΈμ κΈ°μ€μΌλ‘ ν©λλ€.
| λ²μ | μΆμμΌ | νλ¦¬λ―Έμ΄ μ§μ μ’ λ£ | μ°μ₯ μ§μ μ’ λ£ | λΉκ³ |
|---|---|---|---|---|
| Java 8 | 2014λ 3μ | 2022λ 3μ | 2030λ 12μ | μ¬μ ν νμ μ μ μ¨ λμ |
| Java 11 | 2018λ 9μ | 2023λ 9μ | 2032λ 1μ | λͺ¨λ μμ€ν μμ ν |
| Java 17 | 2021λ 9μ | 2026λ 9μ | 2029λ 9μ | νμ¬ κ°μ₯ κΆμ₯λλ λ²μ |
| Java 21 | 2023λ 9μ | 2028λ 9μ | 2031λ 9μ | κ°μ μ€λ λ(Loom) λμ |
| Java 25 | 2025λ 9μ | 2030λ 9μ | 2033λ 9μ | μ΅μ LTS λ²μ |
Tip: μ κ· νλ‘μ νΈλΌλ©΄ μ΅μ Java 17 μ΄μμ μ ννλ κ²μ΄ 보μ λ° μ±λ₯ λ©΄μμ μ 리νλ©°, μ΅μ κΈ°λ₯μ μν΄ Java 21μ΄λ Java 25λ₯Ό κ³ λ €ν΄ λ³΄μΈμ.
2. LTS λ²μ λ³ μ£Όμ λ³ν (What's New?)
Java 8: ν¨μν νλ‘κ·Έλλ°μ μμ
- Lambda Expressions & Streams: μλ°μ ν¨μν ν¨λ¬λ€μμ λμ νμ¬ μ½λλ₯Ό κ°κ²°νκ² μμ±ν μ μκ² λμμ΅λλ€.
- Optional Class:
NullPointerExceptionλ°©μ§λ₯Ό μν νμ€νλ κ°μ²΄ νΈλ€λ§. - New Date/Time API: κΈ°μ‘΄μ λ¬Έμ λ§μ
Date,Calendarλ₯Ό λ체νλjava.timeν¨ν€μ§ λμ .
Java 11: νλνμ μ λ
varν€μλ: μ§μ λ³μμ λν νμ μΆλ‘ μ μ§μνμ¬ κ°λ μ±μ λμμ΅λλ€.- HTTP Client API: νμ€νλ λΉλκΈ° HTTP ν΅μ μ μ§μνλ νλμ μΈ ν΄λΌμ΄μΈνΈ API.
- Oracle JDK μ λ£ν λμ: OpenJDK μ€μ¬μ μνκ³λ‘ μ νλλ μμ .
Java 17: μμ°μ± ν₯μμ μμ±
- Sealed Classes: μμ λ° κ΅¬νμ΄ κ°λ₯ν ν΄λμ€λ₯Ό μ ννμ¬ μ½λμ μμ μ±μ κ°ν.
- Records: λ°μ΄ν° μ€μ¬μ ν΄λμ€(DTO λ±)λ₯Ό μμ±ν λ 보μΌλ¬νλ μ΄νΈ μ½λλ₯Ό νκΈ°μ μΌλ‘ μ€μ¬μ€λλ€.
- Pattern Matching for
instanceof: νμ 체ν¬μ μΊμ€ν μ ν λ²μ μ²λ¦¬.
Java 21: λμμ± νλͺ
- Virtual Threads (Project Loom): κΈ°μ‘΄μ λ¬΄κ±°μ΄ OS μ€λ λ λμ κ°λ²Όμ΄ κ°μ μ€λ λλ₯Ό μ¬μ©νμ¬ μλ°±λ§ κ°μ λμ μμ²μ ν¨μ¨μ μΌλ‘ μ²λ¦¬.
- Sequenced Collections: 리μ€νΈμ μ μμ 첫 λ²μ§Έ/λ§μ§λ§ μμμ μ κ·Όνλ νμ€νλ λ°©μ μ 곡.
- Record Patterns: λ μ½λ κ°μ²΄μ λ°μ΄ν°λ₯Ό μ½κ² λΆν΄νκ³ μΆμΆ.
Java 25: μ±λ₯κ³Ό AI μλμ μμ±
- Compact Object Headers: κ°μ²΄ ν€λ ν¬κΈ°λ₯Ό μ€μ¬ λ©λͺ¨λ¦¬ μ¬μ©λ μ΅μ ν λ° μ±λ₯ ν₯μ.
- Flexible Constructor Bodies:
super()νΈμΆ μ λ‘μ§ μ€νμ΄ κ°λ₯ν΄μ Έ μμ±μ ꡬνμ΄ μ μ°ν΄μ§. - Structured Concurrency: μ¬λ¬ λΉλκΈ° μμ μ νλμ μμ λ¨μμ²λΌ κ΄λ¦¬νμ¬ μμ μ± κ°ν.
- Vector API: κ³ μ±λ₯ μμΉ μ°μ° λ° AI κ΄λ ¨ κ³μ° μ΅μ ν μ§μ.
3. Java 8μμ μμ λ²μ μΌλ‘μ μ νμ΄ μ΄λ €μ΄ μ΄μ
λ¨μν λ²μ μ«μλ§ μ¬λ¦¬λ κ²μ΄ μλλΌ, Java 9μμ λμ λ ꡬ쑰μ λ³νκ° κ°μ₯ ν° μ₯λ²½μ λλ€.
β Project Jigsaw (λͺ¨λ μμ€ν ) λμ
Java 9λΆν° λμ λ λͺ¨λ μμ€ν μ JDK λ΄λΆμ μΊ‘μνλ₯Ό κ°ννμ΅λλ€. λ§μ μ€νμμ€ λΌμ΄λΈλ¬λ¦¬κ° κΈ°μ‘΄μ λ΄λΆ APIμ μμ‘΄νκ³ μμ΄, λΌμ΄λΈλ¬λ¦¬ μ λ°μ΄νΈκ° λλ°λμ΄μΌ ν©λλ€.
β‘ Java EE λͺ¨λμ μ κ±° (Java 11)
JDKμ ν¬ν¨λμ΄ μλ JAXB, JAX-WS λ± Java EE κ΄λ ¨ λͺ¨λλ€μ΄ μμ λμ΄, μ΄μ λ μΈλΆ λΌμ΄λΈλ¬λ¦¬λ‘ λ³λ κ΄λ¦¬ν΄μΌ ν©λλ€.
β’ κ°λΉμ§ 컬λ ν°(GC)μ λ³ν
κΈ°λ³Έ GCκ° Parallelμμ G1 GCλ‘ λ³κ²½λλ©΄μ μ±λ₯ νΉμ±μ΄ λ¬λΌμ‘μΌλ―λ‘, μΈλ°ν νλμ΄ λ€μ νμν μ μμ΅λλ€.
4. μ΄λ€ λ²μ μ μ νν΄μΌ ν κΉ?
- μμ μ±μ΄ μ΅μ°μ μΈ κΈ°μ‘΄ μλΉμ€: Java 11 λλ 17
- μ κ· μλΉμ€ κ°λ°: Java 17 (Spring Boot 3.x μ΅μ μ¬μ) νΉμ Java 21
- μ΅μ²¨λ¨ μ±λ₯κ³Ό AI κΈ°λ₯ νμ©: Java 25
Javaλ λ μ΄μ "λλ¦¬κ³ λ¬΄κ±°μ΄" μΈμ΄κ° μλλλ€. 25 λ²μ μ΄νμ Javaλ νλμ μΈ κΈ°λ₯λ€μ λκ±° ν¬ν¨νλ©° λ€μ νλ² λμΈ μΈμ΄λ‘μμ μ리λ₯Ό κ΅³νκ³ μμ΅λλ€.